﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace Bovespa.Sinacor.Servico.BaseConhecimento.Artigo.Servicos.Contratos
{
    /// <summary>
    /// Contrato de dados "Artigo".
    /// </summary>
    [DataContract(Namespace = "http://www.bovespa.com.br/Artigo/DataContracts/2010/08", Name = "Artigo")]
    public class Artigo
    {
        #region Campos

        private long _codigo; //Armazena estado da propriedade "Codigo"
        private Produto _produto; //Armazena estado da propriedade "CodigoProduto"
        private Versao _versao; //Armazena estado da propriedade "CodigoVersao"
        private int _codigoUsuario; //Armazena estado da propriedade "CodigoUsuario"
        private string _nomeTitulo; //Armazena estado da propriedade "NomeTitulo"
        private string _sintoma; //Armazena estado da propriedade "Sintoma"
        private string _solucao; //Armazena estado da propriedade "Solucao"

        #endregion

        #region Construtor
        public Artigo()
        {
            _produto = new Produto();
            _versao = new Versao();
        }
        #endregion

        #region Propriedades

        /// <summary>
        /// Código do Artigo
        /// </summary>
        [DataMember(IsRequired = true, Name = "Codigo", Order = 0)]
        public long Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        /// <summary>
        /// Código do Produto
        /// </summary>
        [DataMember(IsRequired = true, Name = "Produto", Order = 1)]
        public Produto Produto
        {
            get { return _produto; }
            set { _produto = value; }
        }

        /// <summary>
        /// Código da Versão
        /// </summary>
        [DataMember(IsRequired = true, Name = "Versao", Order = 2)]
        public Versao Versao
        {
            get { return _versao; }
            set { _versao = value; }
        }

        /// <summary>
        /// Código do Usuário
        /// </summary>
        [DataMember(IsRequired = true, Name = "CodigoUsuario", Order = 3)]
        public int CodigoUsuario
        {
            get { return _codigoUsuario; }
            set { _codigoUsuario = value; }
        }

        /// <summary>
        /// Nome do Título do Artigo
        /// </summary>
        [DataMember(IsRequired = true, Name = "NomeTitulo", Order = 4)]
        public string NomeTitulo
        {
            get { return _nomeTitulo; }
            set { _nomeTitulo = value; }
        }

        /// <summary>
        /// Sintoma do Artigo
        /// </summary>
        [DataMember(IsRequired = true, Name = "Sintoma", Order = 5)]
        public string Sintoma
        {
            get { return _sintoma; }
            set { _sintoma = value; }
        }

        /// <summary>
        /// Solução do Artigo
        /// </summary>
        [DataMember(IsRequired = true, Name = "Solucao", Order = 6)]
        public string Solucao
        {
            get { return _solucao; }
            set { _solucao = value; }
        }

        #endregion
    }
}
